package com.vapourdrive.harderstart.recipe.cuttingtable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import com.vapourdrive.harderstart.HarderStart;
public class CuttingTableRecipeManager
{
private static final CuttingTableRecipeManager instance = new CuttingTableRecipeManager();
public List recipes = new ArrayList();
public static CuttingTableRecipeManager getInstance()
{
return instance;
}
public CuttingTableRecipeManager()
{
// this.addItemCut(Items.beef, new ItemStack[]
// {
// new ItemStack(Items.bone, 1), new ItemStack(Items.blaze_rod, 1), new
// ItemStack(Items.diamond_axe, 3)
// });
// this.addItemCut(Items.bed, new ItemStack[]
// {
// new ItemStack(Items.stick, 1)
// });
// this.addItemCut(Items.boat, new ItemStack[]
// {
// new ItemStack(Items.stick, 1), new ItemStack(Blocks.planks, 2, 1)
// });
// this.addBlockCut(Blocks.anvil, new ItemStack[]
// {
// new ItemStack(Items.bone, 1), new ItemStack(Items.blaze_rod, 1)
// });
// this.addBlockCut(Blocks.log, new ItemStack[]
// {
// new ItemStack(Items.stick, 1)
// });
// this.addItemCut(Items.egg, new ItemStack[]
// {
// new ItemStack(Items.stick, 1), new ItemStack(Blocks.planks, 2, 1)
// });
}
public void addBlockCut(Class tool, Block block, ItemStack[] stack)
{
this.addItemCut(tool, Item.getItemFromBlock(block), stack);
}
public void addItemCut(Class tool, Item item, ItemStack[] stack)
{
this.addCutRecipe(tool, new ItemStack(item, 1, 0), stack);
}
public CuttingTableRecipe addCutRecipe(Class tool, ItemStack cut, ItemStack[] results)
{
CuttingTableRecipe cuttingrecipe = new CuttingTableRecipe(tool, cut, results);
this.recipes.add(cuttingrecipe);
return cuttingrecipe;
}
public ItemStack[] getValidRecipe(ItemStack stack, ItemStack toolStack)
{
List<ICuttingTableRecipe> recipes = getRecipeList();
Iterator<ICuttingTableRecipe> iterator = recipes.iterator();
while (iterator.hasNext())
{
ICuttingTableRecipe recipe = iterator.next();
ItemStack currentIngredient = recipe.getInput();
Class currentTool = recipe.getTool();
if (currentIngredient != null && currentTool != null)
{
// if (currentIngredient.getItem() == stack.getItem() &&
// currentTool.isAssignableFrom(toolStack.getItem().getClass()))
if (currentIngredient.getItem() == stack.getItem() && currentTool.isAssignableFrom(toolStack.getItem().getClass()))
{
if (currentIngredient.getItemDamage() == stack.getItemDamage())
{
if (recipe.getRecipeOutput() != null)
{
HarderStart.log.log(org.apache.logging.log4j.Level.INFO, "getValidRecipe: " + recipe.getRecipeOutput()[0]);
return recipe.getRecipeOutput();
}
}
}
}
}
return null;
}
/**
* returns the List<> of all recipes
*/
public List getRecipeList()
{
return this.recipes;
}
}